//
//  SqliteManager.swift
//  WeiBlog
//
//  Created by apple on 15/10/30.
//  Copyright © 2015年 xiang. All rights reserved.
//

import Foundation

/// 数据库操作
class SqliteManager {
    
    /// 单例
    static let sharedManager = SqliteManager()
    
    ///  数据库名称
    let dbName:String = "readme.db"
    
    /// 全局数据库操作队列(串行队列)
    var queue:FMDatabaseQueue
    
    ///  构造函数
    private init() {
        
        //在初始化的时候,创建数据库
        var path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last!
        
        path = (path as NSString).stringByAppendingPathComponent(dbName)
        
        print(path)
        
        //  创建数据库:如果存在就创建队列,并且打开数据库
        //  如果不存在,就创建数据库,然后,在创建队里而打开数据库
        queue = FMDatabaseQueue(path: path)
        
        ///  创建数据库后,创建表
        
        //   数据库操作语句
        let sql = "CREATE TABLE IF NOT EXISTS 'T_Status' ( \n" +
        "'StatusID' INTEGER NOT NULL PRIMARY KEY,\n" +
        "'StatusJSON' TEXT, \n" +
        "'userID' INTEGER \n" +
        ");"
        
        //执行(事务)
        queue.inTransaction { (db, rollback) -> Void in
            
            //执行多条语句时,用这个,单挑语句用executeUpdate,查询用executeQuery
            //在创建表时,推荐用这个,但是在执行单条语句时,建议使用executeUpdate
            if !db.executeStatements(sql){
                print("创建表失败")
            }else{
                print("创建表成功")
            }
        }
    }
    
    ///  查询,返回结果集
    func excuteResultSet() {
        
        let sql = "SELECT * FROM T_Status"
        
        queue.inDatabase { (db) -> Void in
            
            guard let result = db.executeQuery(sql) else{
                print("没有结果")
                return
            }
            while result.next() {
                
//                let name = result.columnNameForIndex(<#T##columnIdx: Int32##Int32#>)
//                let value = result.
            }
        }
    }
}













